1. Field of the Invention
The present invention relates to managing host addresses. More particularly, the present invention relates to managing dynamically allocated host addresses to allow subscribers to reliably locate other subscribers who have been dynamically allocated host addresses.
2. The Background
As shown in FIG. 1, the Internet, or any large computer network, 10 may be described as a group of interconnected computing networks (not shown) that are tied together through a backbone 12. The computing networks, in turn, provide access points, such as access points 14, 16 and 18, through which users may connect to the Internet via a station (a computer having a connection to a network) or host, such as hosts 20, 22, 24, and 26. An access point is essentially a location on the Internet that permits access to the Internet. An access point may include a modem pool (not shown) maintained by an ISP (Internet Services Provider) which enables its subscribers to obtain Internet access through a host having a dial-up connection. Those of ordinary skill in the art will recognize that other types of access methods may be provided by an ISP such as frame relay, leased lines, ATM (asynchronous transfer mode), ADSL, and the like.
Regardless of the access method used, each device (e.g., a host or router) that receives, sends and/or routes information between or among other devices on Internet 10 is configured to communicate with other devices using a communication protocol that may be understood by the other devices. The current communication protocol used by these devices on the Internet is TCP/IP (transmission control protocol/internet protocol). In addition, each device that can send or receive information (e.g., a host device) must also have a unique host address. The type of host address used for the Internet, or an equivalent switched network that uses TCP/IP, is commonly referred to as an IP address. A standard TCP/IP address is 4 bytes (32 bits) in length, providing a total of 2.sup.32 possible IP addresses. Those of ordinary skill in the art will readily recognize that not all of these possible IP addresses are available due to administrative expediencies, such as reserving blocks of IP addresses for future use.
Sending or receiving information using the TCP/IP protocol requires encapsulating information into packets. Each packet includes a header and a payload. The header contains information related to the handling of the payload by a receiving host or routing device, while the payload contains part or all of the user information. The information in the header includes the sender's and the recipient's addresses and is used to route the packet through the Internet until the packet is received by a host having an IP address that matches the packet's destination address (when referring to the source address and destination address of a packet, the source address and destination address are commonly referred to as "SA" and "DA", respectively). This enables users to accurately send and receive information with each other through their respective host computers.
By implementing a protocol common to all devices using Internet 10, users may send and receive information with other users on the Internet in a seamless manner regardless of geographic location or the type of host and/or interconnected network used. While IP addresses themselves are in numerical form, in order to make navigating the sea of addresses simpler, the Domain Name Service (DNS) was formed. DNS enables the central managing of host names to IP addresses. It is actually a distributed database which allows for the dissemination of new host information as needed. There are a great many DNS servers distributed throughout the Internet, and most large ISPs maintain their own DNS server.
FIG. 2 is a diagram illustrating the DNS hierarchy, which is similar to that of a computer file system, At the top of the hierarchy is the root domain 50, which consists of a group of root servers to service the top-level domains. The top level domains are separated into organizational and geographical domains. Many countries have their own top-level domains, such as .uk for the United Kingdom, .de for Germany, and jp for Japan (not shown). The United States has no country-specific top-level domain, but is the main user of the six organizational top-level domains, which are net for network support organizations 52, .gov for government agencies 54, mil for military users 56, org for not for profit organizations 58, .com for commercial enterprises 60, and .edu for educational facilities 62. There are also a near infinite number of lower level domains. Each level of domain names may have another level of domain names below it. For example, a lower level domain .work 64 may be located under the .com domain 60, and the lower level domain .univ 66 may be located under the .edu domain 62. At the lowest level are the hosts. For example, the host labeled overtime 68 may be located under the .work sub-domain under the .com domain while the host labeled vax 70 may be located under the .univ sub-domain under the .edu domain. The proper way to read these two DNS host names would then be overtime.work.com and vax.univ.edu.
The steps of locating an IP address from a host, sub-domain, and domain name proceeds as in the following example. If a user in the vax.univ.edu domain wishes to contact a user with the user name sun in the work.com domain, the first step is to contact its own DNS server. Therefore, if the vax.univ.edu host is configured with a DNS server at the IP address 133.3.1.3, the user sends a DNS request to that IP address. The DNS server then searches for the entry in its database. Generally, DNS servers only maintain a database of host addresses (or sub-domain names) within its own subnet. Therefore, the DNS server would look for an IP address corresponding to the domain/sub-domain combination .univ.edu. It may or may not have information that precise. It may only have information regarding the IP address of the .com domain and not the .work.com domain. If it has information about the IP address of the DNS server of the .work.com domain, it passes this information to the user, which then contacts the .work.com DNS server and requests the IP address of the precise user it wishes to contact in the .work.com domain. If however, the DNS server associated with the vax.univ.edu host only has information about the address of the DNS server of the .com domain, it returns only that address, and the user must recursively navigate down the branches of DNS servers in the com domain until locating the address it needs (in the present example, it only searches down one level, but in more complicated hierarchies it may need to search through many levels of DNS servers).
It is also possible that a higher level DNS server will simply forward the request packet down the hierarchy and wait to inform the user of the host address until it hears back from the lower level DNS server, thus avoiding having to contact the user at each step in the hierarchy. However, this still presents the problem of recursing, which increases the complexity of a search.
The dramatic increase in popularity of the Internet in recent years has created a concern about the number of available IP addresses. ISPs and domains are generally allocated a finite number of IP addresses. The ISPs and domains, therefore, are constantly looking for ways to limit the number of IP addresses they use while still providing access to the greatest number of users.
One solution for mitigating the effect of the number of users requiring host addresses is to dynamically allocate host addresses for users who do not have dedicated connections to the Internet, such as users who use dial-up access methods to connect to an ISP. Dynamic allocation of IP addresses entails having a pool of IP addresses, such as IP address pool, from which an ISP can draw from each time a valid subscriber (who does not use a dedicated connection or a connection that does not have a framed IP address, i.e., a static IP address) seeks to access the Internet. Once the subscriber logs on to an ISP and is properly authenticated, the ISP allocates an IP address for use by the user. This task is normally performed by a Dynamic Host Configuration Protocol (DHCP) server existing on the ISP (or other local segment of the Internet).
Upon log-off, the DHCP server releases the assigned/allocated IP address, rendering that IP address available for subsequent use by another user. In this way, a set of IP addresses can be used to provide access to a number of users that exceed the number of IP address comprising the IP address pool, assuming that at any given time the number of users seeking to log-on and obtain dynamic IP addresses is less than or equal to the number of IP address available in the IP address pool.
Recently, software advances have allowed users to begin to merge existing technologies, like telephone service, into their Internet service. One example of this phenomenon is a utility known as Internet Phone. With the Internet Phone utility installed on his computer, a user may "dial" a friend's computer and speak (either through a microphone connected to the computer or through an integrated telephone) with his friend, who has a similar system. Communication is accomplished over the Internet utilizing a protocol called Voice over IP (VoIP). VoIP utilizes IP packets to carry digital audio transmissions. Through data compression techniques (which includes filtering out much o the silences that accompany most conversations), it is possible to conduct real-time conversations through the Internet.
Another example of the technology-merging phenomenon is in Internet Chat. Internet Chat is similar to e-mail in that users type messages to one another on their screens. However, and Internet Chat session takes place in real-time. Therefore, when a user types a sentence on his screen and presses &lt;enter&gt;, the message is transmitted instantaneously to the recipient, who then may respond to the message. The recipient may then respond in a similar fashion, creating a real-time, typed "conversation".
A problem arises in using these technologies when a user wishes to initiate a conversation or chat session with a dial-up user. There is currently no way for a system to resolve a dynamically assigned destination address. Therefore, programs like Internet Chat or Internet Phone are virtually useless when used in conjunction with dial-up users. The one solution is to determine the users actual dynamic IP address. This, however, requires efforts on both parties to the conversation.
Additionally, it has become more and more common to have multiple DHCP servers, rather than a single DHCP server, for a single ISP or local segment of the Internet. These multiple DHCP servers are distributed throughout the ISP or local segment of the Internet and may contain different information.
Multiple DHCP servers may tend to create a problem with regards to revocation of dynamically allocated IP addresses. When an ISP determines it should revoke a dynamically allocated IP addresses (such as when a dial-up user disconnects from the ISP), it must then search each of the DHCP servers to make sure the address is removed from all DHCP servers which have stored the dynamically allocated address.
What is needed is a solution which overcomes the drawbacks of the prior art.